home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / include / pcmcia / device_id.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  8.9 KB  |  271 lines

  1. /*
  2.  * device_id.h -- PCMCIA driver matching helpers
  3.  *
  4.  * This program is free software; you can redistribute it and/or modify
  5.  * it under the terms of the GNU General Public License version 2 as
  6.  * published by the Free Software Foundation.
  7.  *
  8.  * (C) 2003 - 2004    David Woodhouse
  9.  * (C) 2003 - 2004    Dominik Brodowski
  10.  */
  11.  
  12. #ifndef _LINUX_PCMCIA_DEVICE_ID_H
  13. #define _LINUX_PCMCIA_DEVICE_ID_H
  14.  
  15. #ifdef __KERNEL__
  16.  
  17. #define PCMCIA_DEVICE_MANF_CARD(manf, card) { \
  18.     .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
  19.             PCMCIA_DEV_ID_MATCH_CARD_ID, \
  20.     .manf_id = (manf), \
  21.     .card_id = (card), }
  22.  
  23. #define PCMCIA_DEVICE_FUNC_ID(func) { \
  24.     .match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \
  25.     .func_id = (func), }
  26.  
  27. #define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \
  28.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \
  29.     .prod_id = { (v1), NULL, NULL, NULL }, \
  30.     .prod_id_hash = { (vh1), 0, 0, 0 }, }
  31.  
  32. #define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \
  33.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \
  34.     .prod_id = { NULL, (v2), NULL, NULL },  \
  35.     .prod_id_hash = { 0, (vh2), 0, 0 }, }
  36.  
  37. #define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \
  38.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  39.             PCMCIA_DEV_ID_MATCH_PROD_ID2, \
  40.     .prod_id = { (v1), (v2), NULL, NULL }, \
  41.     .prod_id_hash = { (vh1), (vh2), 0, 0 }, }
  42.  
  43. #define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \
  44.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  45.             PCMCIA_DEV_ID_MATCH_PROD_ID3, \
  46.     .prod_id = { (v1), NULL, (v3), NULL }, \
  47.     .prod_id_hash = { (vh1), 0, (vh3), 0 }, }
  48.  
  49. #define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \
  50.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  51.             PCMCIA_DEV_ID_MATCH_PROD_ID4, \
  52.     .prod_id = { (v1), NULL, NULL, (v4) }, \
  53.     .prod_id_hash = { (vh1), 0, 0, (vh4) }, }
  54.  
  55. #define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \
  56.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  57.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  58.             PCMCIA_DEV_ID_MATCH_PROD_ID3, \
  59.     .prod_id = { (v1), (v2), (v3), NULL },\
  60.     .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, }
  61.  
  62. #define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \
  63.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  64.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  65.             PCMCIA_DEV_ID_MATCH_PROD_ID4, \
  66.     .prod_id = { (v1), (v2), NULL, (v4) }, \
  67.     .prod_id_hash = { (vh1), (vh2), 0, (vh4) }, }
  68.  
  69. #define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \
  70.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  71.             PCMCIA_DEV_ID_MATCH_PROD_ID3| \
  72.             PCMCIA_DEV_ID_MATCH_PROD_ID4, \
  73.     .prod_id = { (v1), NULL, (v3), (v4) }, \
  74.     .prod_id_hash = { (vh1), 0, (vh3), (vh4) }, }
  75.  
  76. #define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \
  77.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  78.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  79.             PCMCIA_DEV_ID_MATCH_PROD_ID3| \
  80.             PCMCIA_DEV_ID_MATCH_PROD_ID4, \
  81.     .prod_id = { (v1), (v2), (v3), (v4) }, \
  82.     .prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, }
  83.  
  84. #define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \
  85.     .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
  86.             PCMCIA_DEV_ID_MATCH_CARD_ID| \
  87.             PCMCIA_DEV_ID_MATCH_PROD_ID1, \
  88.     .manf_id = (manf), \
  89.     .card_id = (card), \
  90.     .prod_id = { (v1), NULL, NULL, NULL }, \
  91.     .prod_id_hash = { (vh1), 0, 0, 0 }, }
  92.  
  93.  
  94. /* multi-function devices */
  95.  
  96. #define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \
  97.     .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
  98.             PCMCIA_DEV_ID_MATCH_CARD_ID| \
  99.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  100.     .manf_id = (manf), \
  101.     .card_id = (card), \
  102.     .function = (mfc), }
  103.  
  104. #define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
  105.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  106.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  107.     .prod_id = { (v1), NULL, NULL, NULL }, \
  108.     .prod_id_hash = { (vh1), 0, 0, 0 }, \
  109.     .function = (mfc), }
  110.  
  111. #define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
  112.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  113.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  114.     .prod_id = { NULL, (v2), NULL, NULL },  \
  115.     .prod_id_hash = { 0, (vh2), 0, 0 }, \
  116.     .function = (mfc), }
  117.  
  118. #define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
  119.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  120.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  121.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  122.     .prod_id = { (v1), (v2), NULL, NULL }, \
  123.     .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
  124.     .function = (mfc), }
  125.  
  126. #define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
  127.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  128.             PCMCIA_DEV_ID_MATCH_PROD_ID3| \
  129.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  130.     .prod_id = { (v1), NULL, (v3), NULL }, \
  131.     .prod_id_hash = { (vh1), 0, (vh3), 0 }, \
  132.     .function = (mfc), }
  133.  
  134. #define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
  135.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  136.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  137.             PCMCIA_DEV_ID_MATCH_PROD_ID3| \
  138.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  139.     .prod_id = { (v1), (v2), (v3), NULL },\
  140.     .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
  141.     .function = (mfc), }
  142.  
  143. /* pseudo multi-function devices */
  144.  
  145. #define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \
  146.     .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \
  147.             PCMCIA_DEV_ID_MATCH_CARD_ID| \
  148.             PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
  149.     .manf_id = (manf), \
  150.     .card_id = (card), \
  151.     .device_no = (mfc), }
  152.  
  153. #define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \
  154.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  155.             PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
  156.     .prod_id = { (v1), NULL, NULL, NULL }, \
  157.     .prod_id_hash = { (vh1), 0, 0, 0 }, \
  158.     .device_no = (mfc), }
  159.  
  160. #define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \
  161.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  162.             PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
  163.     .prod_id = { NULL, (v2), NULL, NULL },  \
  164.     .prod_id_hash = { 0, (vh2), 0, 0 }, \
  165.     .device_no = (mfc), }
  166.  
  167. #define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \
  168.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  169.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  170.             PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
  171.     .prod_id = { (v1), (v2), NULL, NULL }, \
  172.     .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
  173.     .device_no = (mfc), }
  174.  
  175. #define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \
  176.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  177.             PCMCIA_DEV_ID_MATCH_PROD_ID3| \
  178.             PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
  179.     .prod_id = { (v1), NULL, (v3), NULL }, \
  180.     .prod_id_hash = { (vh1), 0, (vh3), 0 }, \
  181.     .device_no = (mfc), }
  182.  
  183. #define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \
  184.     .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  185.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  186.             PCMCIA_DEV_ID_MATCH_PROD_ID3| \
  187.             PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
  188.     .prod_id = { (v1), (v2), (v3), NULL },\
  189.     .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
  190.     .device_no = (mfc), }
  191.  
  192. /* cards needing a CIS override */
  193.  
  194. #define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \
  195.     .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
  196.             PCMCIA_DEV_ID_MATCH_MANF_ID| \
  197.             PCMCIA_DEV_ID_MATCH_CARD_ID, \
  198.     .manf_id = (manf), \
  199.     .card_id = (card), \
  200.     .cisfile = (_cisfile)}
  201.  
  202. #define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \
  203.     .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
  204.             PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  205.             PCMCIA_DEV_ID_MATCH_PROD_ID2, \
  206.     .prod_id = { (v1), (v2), NULL, NULL }, \
  207.     .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
  208.     .cisfile = (_cisfile)}
  209.  
  210. #define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \
  211.     .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
  212.             PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  213.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  214.             PCMCIA_DEV_ID_MATCH_PROD_ID3, \
  215.     .prod_id = { (v1), (v2), (v3), NULL },\
  216.     .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \
  217.     .cisfile = (_cisfile)}
  218.  
  219.  
  220. #define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \
  221.     .match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
  222.             PCMCIA_DEV_ID_MATCH_PROD_ID2, \
  223.     .prod_id = { NULL, (v2), NULL, NULL },  \
  224.     .prod_id_hash = { 0, (vh2), 0, 0 }, \
  225.     .cisfile = (_cisfile)}
  226.  
  227. #define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
  228.     .match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
  229.             PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  230.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  231.             PCMCIA_DEV_ID_MATCH_DEVICE_NO, \
  232.     .prod_id = { (v1), (v2), NULL, NULL }, \
  233.     .prod_id_hash = { (vh1), (vh2), 0, 0 },\
  234.     .device_no = (mfc), \
  235.     .cisfile = (_cisfile)}
  236.  
  237. #define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \
  238.     .match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
  239.             PCMCIA_DEV_ID_MATCH_MANF_ID| \
  240.             PCMCIA_DEV_ID_MATCH_CARD_ID| \
  241.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  242.     .manf_id = (manf), \
  243.     .card_id = (card), \
  244.     .function = (mfc), \
  245.     .cisfile = (_cisfile)}
  246.  
  247. #define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \
  248.     .match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
  249.             PCMCIA_DEV_ID_MATCH_PROD_ID1| \
  250.             PCMCIA_DEV_ID_MATCH_PROD_ID2| \
  251.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  252.     .prod_id = { (v1), (v2), NULL, NULL }, \
  253.     .prod_id_hash = { (vh1), (vh2), 0, 0 }, \
  254.     .function = (mfc), \
  255.     .cisfile = (_cisfile)}
  256.  
  257. #define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \
  258.     .match_flags =  PCMCIA_DEV_ID_MATCH_FAKE_CIS | \
  259.             PCMCIA_DEV_ID_MATCH_PROD_ID4| \
  260.             PCMCIA_DEV_ID_MATCH_FUNCTION, \
  261.     .prod_id = { NULL, NULL, NULL, (v4) }, \
  262.     .prod_id_hash = { 0, 0, 0, (vh4) }, \
  263.     .function = (mfc), \
  264.     .cisfile = (_cisfile)}
  265.  
  266.  
  267. #define PCMCIA_DEVICE_NULL { .match_flags = 0, }
  268.  
  269. #endif /* __KERNEL__ */
  270. #endif /* _LINUX_PCMCIA_DEVICE_ID_H */
  271.